home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / sunrpc / svcsock.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  66 lines

  1. /*
  2.  * linux/include/linux/sunrpc/svcsock.h
  3.  *
  4.  * RPC server socket I/O.
  5.  *
  6.  * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
  7.  */
  8.  
  9. #ifndef SUNRPC_SVCSOCK_H
  10. #define SUNRPC_SVCSOCK_H
  11.  
  12. #include <linux/sunrpc/svc.h>
  13.  
  14. /*
  15.  * RPC server socket.
  16.  */
  17. struct svc_sock {
  18.     struct list_head    sk_ready;    /* list of ready sockets */
  19.     struct list_head    sk_list;    /* list of all sockets */
  20.     struct socket *        sk_sock;    /* berkeley socket layer */
  21.     struct sock *        sk_sk;        /* INET layer */
  22.  
  23.     struct svc_serv *    sk_server;    /* service for this socket */
  24.     unsigned int        sk_inuse;    /* use count */
  25.     unsigned long        sk_flags;
  26. #define    SK_BUSY        0            /* enqueued/receiving */
  27. #define    SK_CONN        1            /* conn pending */
  28. #define    SK_CLOSE    2            /* dead or dying */
  29. #define    SK_DATA        3            /* data pending */
  30. #define    SK_TEMP        4            /* temp (TCP) socket */
  31. #define    SK_DEAD        6            /* socket closed */
  32. #define    SK_CHNGBUF    7            /* need to change snd/rcv buffer sizes */
  33. #define    SK_DEFERRED    8            /* request on sk_deferred */
  34.  
  35.     int            sk_reserved;    /* space on outq that is reserved */
  36.  
  37.     struct list_head    sk_deferred;    /* deferred requests that need to
  38.                          * be revisted */
  39.     struct semaphore        sk_sem;        /* to serialize sending data */
  40.  
  41.     int            (*sk_recvfrom)(struct svc_rqst *rqstp);
  42.     int            (*sk_sendto)(struct svc_rqst *rqstp);
  43.  
  44.     /* We keep the old state_change and data_ready CB's here */
  45.     void            (*sk_ostate)(struct sock *);
  46.     void            (*sk_odata)(struct sock *, int bytes);
  47.     void            (*sk_owspace)(struct sock *);
  48.  
  49.     /* private TCP part */
  50.     int            sk_reclen;    /* length of record */
  51.     int            sk_tcplen;    /* current read length */
  52.     time_t            sk_lastrecv;    /* time of last received request */
  53. };
  54.  
  55. /*
  56.  * Function prototypes.
  57.  */
  58. int        svc_makesock(struct svc_serv *, int, unsigned short);
  59. void        svc_delete_socket(struct svc_sock *);
  60. int        svc_recv(struct svc_serv *, struct svc_rqst *, long);
  61. int        svc_send(struct svc_rqst *);
  62. void        svc_drop(struct svc_rqst *);
  63. void        svc_sock_update_bufs(struct svc_serv *serv);
  64.  
  65. #endif /* SUNRPC_SVCSOCK_H */
  66.